From e5fb08210d9c44e7f5addca77263080ebdcf5dd4 Mon Sep 17 00:00:00 2001 From: "emellor@leeni.uk.xensource.com" Date: Tue, 2 May 2006 18:17:59 +0100 Subject: [PATCH] Xm-tests 01_memset_basic_pos.test and 03_memset_random_pos.test start domUs with 64MB of memory, and assume that all of that memory is available in the domU. They then perform various xm memset tests based on the assumed starting conditions. When netback & blkback are comiled into the domU kernel, they eat about 5MB. This mismatch will cause 01_memset_basic_pos.test to fail every time. 03_memset_random_pos.test will probably fail, but can pass with some lucky numbers from the random number generator. This patch changes both tests to read the starting memory allocation from the balloon driver in the domU. Signed-off-by: Jim Dykman --- .../tests/memset/01_memset_basic_pos.py | 22 ++++++++++++++----- .../tests/memset/03_memset_random_pos.py | 14 ++++++++++-- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/tools/xm-test/tests/memset/01_memset_basic_pos.py b/tools/xm-test/tests/memset/01_memset_basic_pos.py index 58e65966ac..376ec82809 100644 --- a/tools/xm-test/tests/memset/01_memset_basic_pos.py +++ b/tools/xm-test/tests/memset/01_memset_basic_pos.py @@ -44,8 +44,20 @@ try: except ConsoleError, e: FAIL(str(e)) +try: + run = console.runCmd("cat /proc/xen/balloon | grep Current"); +except ConsoleError, e: + FAIL(str(e)) + +match = re.match("[^0-9]+([0-9]+)", run["output"]) +if not match: + FAIL("Invalid domU meminfo line") + +origmem = int(match.group(1)) / 1024 +newmem = origmem - 1 + # set mem-set for less than default -cmd = "xm mem-set %s %i" % (domain.getName(), 63) +cmd = "xm mem-set %s %i" % (domain.getName(), newmem) status, output = traceCommand(cmd) if status != 0: if verbose: @@ -55,7 +67,7 @@ if status != 0: for i in [1,2,3,4,5,6,7,8,9,10]: mem = getDomMem(domain.getName()) - if mem == 63: + if mem == newmem: break time.sleep(1) @@ -63,8 +75,8 @@ for i in [1,2,3,4,5,6,7,8,9,10]: mem = getDomMem(domain.getName()) if not mem: FAIL("Failed to get memory amount for domain %s" % domain.getName()) -elif mem != 63: - FAIL("Dom0 failed to verify 63 MB; got %i MB" % mem) +elif mem != newmem: + FAIL("Dom0 failed to verify %i MB; got %i MB" % newmem,mem) # verify memory set internally try: @@ -79,7 +91,7 @@ if not m: domUmem = int(m.group(1)) / 1024 -if domUmem != 63: +if domUmem != newmem: FAIL("DomU reported incorrect memory amount: %i MB" % (domUmem)) # quiesce everything diff --git a/tools/xm-test/tests/memset/03_memset_random_pos.py b/tools/xm-test/tests/memset/03_memset_random_pos.py index 3f382938ff..bb78c90cee 100644 --- a/tools/xm-test/tests/memset/03_memset_random_pos.py +++ b/tools/xm-test/tests/memset/03_memset_random_pos.py @@ -22,8 +22,6 @@ except DomainError, e: FAIL(str(e)) times = random.randint(10,50) -origmem = domain.config.getOpt("memory") -currmem = domain.config.getOpt("memory") try: console = XmConsole(domain.getName()) @@ -31,6 +29,18 @@ try: except ConsoleError, e: FAIL(str(e)) +try: + run = console.runCmd("cat /proc/xen/balloon | grep Current"); +except ConsoleError, e: + FAIL(str(e)) + +match = re.match("[^0-9]+([0-9]+)", run["output"]) +if not match: + FAIL("Invalid domU meminfo line") + +origmem = int(match.group(1)) / 1024 +currmem = origmem + for i in range(0,times): amt = random.randint(-10,10) -- 2.30.2